/**
 * API工具类
 * 用于统一处理API URL，确保所有请求都使用正确的基础URL
 */

import config, { log } from '@/config'
import { getApiUrl } from './request'

/**
 * 获取完整的API URL
 * @param {string} path - API路径
 * @returns {string} 完整的API URL
 */
export function url(path) {
  return getApiUrl(path);
}

/**
 * 获取当前使用的API基础URL
 * @returns {string} 当前API基础URL
 */
export function getBaseUrl() {
  return config.baseApi || window.baseUrl || '';
}

/**
 * 获取上传文件的URL
 * @returns {string} 上传文件的URL
 */
export function getUploadUrl() {
  const baseUrl = getBaseUrl();
  return baseUrl + (config.uploadUrl || '/upload');
}

/**
 * 切换API环境（仅在开发模式有效）
 * @param {string} env - 环境名称，如'production', 'test', 'dev'
 * @returns {boolean} 是否切换成功
 */
export function switchApiEnvironment(env) {
  if (process.env.NODE_ENV !== 'development') {
    log.warn('切换API环境仅在开发模式下有效');
    return false;
  }
  
  if (window.apiConfig && window.apiConfig[env]) {
    window.currentEnv = env;
    window.baseUrl = window.apiConfig[env];
    log.info('已切换到环境:', env, '- API地址:', window.baseUrl);
    return true;
  } else {
    log.error('未找到环境配置:', env);
    return false;
  }
}

// 导出默认对象
export default {
  url,
  getBaseUrl,
  getUploadUrl,
  switchApiEnvironment
}; 